WEBVTT 82 00:12:06.870 --> 00:12:14.389 Benji Fisher: Welcome. This is the drupal usability meeting for April nineteenth, 2024. I'm Benjy Fisher, moderating and sharing my screen. 83 00:12:14.550 --> 00:12:19.510 Benji Fisher: and also present are Ralph Kohler, Erin and Mikhail, Alfred Shal. 84 00:12:19.520 --> 00:12:21.970 Benji Fisher: Simo Helston Scott. 85 00:12:22.090 --> 00:12:24.789 Benji Fisher: and Thomas Howell. Thanks all for coming. 86 00:12:25.560 --> 00:12:27.090 Benji Fisher: and 87 00:12:27.110 --> 00:12:29.990 Benji Fisher: I think we'll start today with this issue. 88 00:12:30.110 --> 00:12:34.290 Benji Fisher: It is 3, 2, 9, 6, 1 9. Oh. 89 00:12:34.820 --> 00:12:38.519 Benji Fisher: support the multiple attribute for the email element. 90 00:12:42.260 --> 00:12:47.250 Benji Fisher: and I have a site where the current merge request 91 00:12:48.040 --> 00:12:50.049 Benji Fisher: has been applied. 92 00:12:54.110 --> 00:12:56.180 Benji Fisher: I guess I have to log in. 93 00:13:03.140 --> 00:13:10.930 Benji Fisher: Then where is a good place to test this? We need a form with an email element. 94 00:13:11.760 --> 00:13:13.150 Benji Fisher: So do I 95 00:13:14.670 --> 00:13:16.950 Benji Fisher: need some custom code there. 96 00:13:18.900 --> 00:13:20.550 Benji Fisher: In order to test this. 97 00:13:25.730 --> 00:13:29.770 Ralf Koller: Not sure. I've only looked at the 2 strings in question. 98 00:13:44.790 --> 00:13:46.620 Benji Fisher: So let's see. 99 00:13:50.600 --> 00:13:53.190 Benji Fisher: I think I may do a little bit of hacking here. 100 00:14:02.250 --> 00:14:08.770 Benji Fisher: So on the basic site settings, there's a text area for an email address. 101 00:14:09.720 --> 00:14:10.950 Benji Fisher: And 102 00:14:14.130 --> 00:14:16.280 Benji Fisher: let's see, where would that be 103 00:14:20.940 --> 00:14:23.780 Benji Fisher: that it's in the system module. 104 00:14:39.470 --> 00:14:41.889 Benji Fisher: that it's the site information form. 105 00:14:47.781 --> 00:14:51.599 Benji Fisher: So I'm only sharing my browser window, so you can't 106 00:14:51.840 --> 00:14:54.220 Benji Fisher: see that I'm opening up an editor. 107 00:15:00.040 --> 00:15:02.019 Benji Fisher: But let's see the issue 108 00:15:03.450 --> 00:15:04.690 Benji Fisher: says. 109 00:15:04.750 --> 00:15:07.350 Benji Fisher: type, email title. 110 00:15:08.980 --> 00:15:15.050 Benji Fisher: so adding the multiple attribute which before this issue would not be supported. 111 00:15:15.410 --> 00:15:17.620 Benji Fisher: But I'm going to add that. 112 00:15:37.100 --> 00:15:39.479 Benji Fisher: and then let's see what happens 113 00:15:39.990 --> 00:15:42.309 Benji Fisher: if I reload this page 114 00:15:45.080 --> 00:15:47.210 Benji Fisher: and add 115 00:15:53.900 --> 00:15:56.049 Benji Fisher: a second email address here 116 00:15:58.240 --> 00:16:00.490 Benji Fisher: save configuration. 117 00:16:01.130 --> 00:16:03.949 Benji Fisher: And it seems to have worked. It accepts. 118 00:16:06.090 --> 00:16:09.180 Benji Fisher: 2 email addresses separated by a comma. 119 00:16:11.060 --> 00:16:12.429 Benji Fisher: And then I guess. 120 00:16:15.290 --> 00:16:20.389 Benji Fisher: So, I guess before I go on any further any questions about the point of this issue. 121 00:16:23.270 --> 00:16:26.629 Benji Fisher: Any anyone want more details on 122 00:16:27.150 --> 00:16:29.299 Benji Fisher: what? Exactly I did to 123 00:16:30.620 --> 00:16:33.300 Benji Fisher: tuple tuple core. In order to test this. 124 00:16:34.950 --> 00:16:37.150 Simo Hellsten: I'm actually Googling 125 00:16:38.230 --> 00:16:41.880 Simo Hellsten: about having multiple email addresses in 126 00:16:41.930 --> 00:16:45.270 Simo Hellsten: from, because, yeah, that's kind of sounds weird. 127 00:16:48.944 --> 00:16:54.065 Benji Fisher: So for the basic site settings it, it would be weird to have more than one email address. 128 00:16:54.800 --> 00:16:55.540 Benji Fisher: But 129 00:16:55.770 --> 00:17:00.629 Benji Fisher: this is a question about the form Api, and there are other 130 00:17:01.030 --> 00:17:06.951 Benji Fisher: context where it would make a lot of sense to allow multiple email addresses like, I want to. 131 00:17:08.232 --> 00:17:14.740 Benji Fisher: Send the summary of this article to 5 different people, and I 132 00:17:14.770 --> 00:17:20.189 Benji Fisher: would like to enter 5 different email addresses in a form field and and send it off. 133 00:17:21.079 --> 00:17:27.259 skaught: I have a question just in case this input this email address isn't an email input 134 00:17:28.429 --> 00:17:30.069 skaught: is that part of the test 135 00:17:31.550 --> 00:17:37.159 skaught: input field is this just an input field with a string, and therefore it'll accept columns. 136 00:17:40.171 --> 00:17:42.878 Benji Fisher: I'm pretty sure it's still validated. 137 00:17:44.990 --> 00:17:48.879 Benji Fisher: you know, if I change this to heather sent dot exact. 138 00:17:48.880 --> 00:17:49.420 skaught: On! 139 00:17:49.420 --> 00:17:50.190 Benji Fisher: But com 140 00:17:52.590 --> 00:17:55.319 Benji Fisher: But first of all, Simo, did I answer your question? 141 00:17:55.320 --> 00:17:56.299 skaught: You know it is. 142 00:18:00.000 --> 00:18:02.119 Simo Hellsten: What I was looking at is 143 00:18:02.690 --> 00:18:03.949 Simo Hellsten: so this is a bit 144 00:18:04.070 --> 00:18:11.970 Simo Hellsten: old version source, actually. But if, if, like, when the examples have multiple. 145 00:18:12.030 --> 00:18:13.930 Simo Hellsten: like a list of different 146 00:18:14.220 --> 00:18:17.399 Simo Hellsten: email addresses in the form from 147 00:18:17.790 --> 00:18:19.340 Simo Hellsten: so does it 148 00:18:19.940 --> 00:18:23.530 Simo Hellsten: comply with smtp specification. 149 00:18:23.680 --> 00:18:25.839 Simo Hellsten: So could it go wrong. There. 150 00:18:27.270 --> 00:18:31.142 Benji Fisher: Okay? And I see you've posted a comment. In the zoom chat. 151 00:18:40.850 --> 00:18:43.339 Benji Fisher: and and the link. So I. 152 00:18:44.160 --> 00:18:46.909 Simo Hellsten: So I'm wondering, just wondering if this 153 00:18:47.050 --> 00:18:50.920 Simo Hellsten: like allows you. This allows user to make 154 00:18:51.010 --> 00:18:53.629 Simo Hellsten: so quite something that is against the 155 00:18:56.960 --> 00:18:58.440 Simo Hellsten: is some Tp. 156 00:19:03.610 --> 00:19:04.490 Simo Hellsten: but it 157 00:19:05.730 --> 00:19:07.809 Simo Hellsten: it seems that it's allowed. 158 00:19:07.950 --> 00:19:09.949 Simo Hellsten: or at least has been allowed. 159 00:19:10.980 --> 00:19:13.070 Simo Hellsten: So that's maybe 160 00:19:13.620 --> 00:19:15.530 Simo Hellsten: we can look at how it works. 161 00:19:16.270 --> 00:19:17.060 Simo Hellsten: No. 162 00:19:17.530 --> 00:19:18.579 Benji Fisher: Yeah, I I 163 00:19:19.070 --> 00:19:20.979 Benji Fisher: I'm also not sure 164 00:19:21.140 --> 00:19:22.400 Benji Fisher: whether that's 165 00:19:23.020 --> 00:19:24.380 Benji Fisher: in scope here. 166 00:19:28.140 --> 00:19:28.800 Benji Fisher: in. 167 00:19:29.950 --> 00:19:31.220 Benji Fisher: And I guess 168 00:19:32.430 --> 00:19:36.169 Benji Fisher: I guess there's there's a further question of of what happens 169 00:19:36.670 --> 00:19:40.039 Benji Fisher: when I use this field, how it's stored 170 00:19:43.420 --> 00:19:46.380 Benji Fisher: and and and actually, maybe 171 00:19:47.090 --> 00:19:49.429 Benji Fisher: that's worth asking on on the issue. 172 00:19:50.352 --> 00:19:52.100 Benji Fisher: Ralph, go ahead. 173 00:19:53.050 --> 00:20:00.650 Ralf Koller: And could you please try one other scenario? Change it back to the add and remove the percentage. 174 00:20:00.910 --> 00:20:03.049 Ralf Koller: And at the same time. 175 00:20:04.930 --> 00:20:10.020 Ralf Koller: after the comma add a space and another comma. So you have an empty slot 176 00:20:10.540 --> 00:20:12.029 Ralf Koller: in between. That is 177 00:20:13.300 --> 00:20:16.769 Ralf Koller: the example that is in the open thread on Gillab. 178 00:20:20.610 --> 00:20:27.822 Benji Fisher: Right? So I I I I'm I'm trying to to pause and and and make sure that everyone understands the context. And you're all asking very 179 00:20:28.260 --> 00:20:30.800 Benji Fisher: technical questions. So I think I should 180 00:20:31.100 --> 00:20:34.070 Benji Fisher: get beyond that stage. Yes, everyone understands 181 00:20:34.080 --> 00:20:40.869 Benji Fisher: what the purpose of this is. And and we're now seeing how well, the the current patch works. 182 00:20:41.010 --> 00:20:44.589 Benji Fisher: So if I save this configuration. 183 00:20:44.890 --> 00:20:47.989 Benji Fisher: I get, please enter an email address 184 00:20:51.480 --> 00:20:55.400 Benji Fisher: which is not ideal. I've already entered 2 email addresses. 185 00:20:55.400 --> 00:20:57.350 skaught: This is HTML high validation, though. 186 00:20:58.150 --> 00:20:58.780 Benji Fisher: Yes. 187 00:20:58.980 --> 00:21:00.390 Benji Fisher: this is a 188 00:21:03.230 --> 00:21:08.589 Benji Fisher: when we when you have an email field, you get some validation for free 189 00:21:10.060 --> 00:21:12.199 Benji Fisher: inspect and 190 00:21:12.230 --> 00:21:13.390 Benji Fisher: input 191 00:21:13.550 --> 00:21:16.759 Benji Fisher: id class required 192 00:21:18.365 --> 00:21:18.750 Benji Fisher: type 193 00:21:19.740 --> 00:21:24.780 Benji Fisher: type is email. So so yes, we get HTML validation for free. 194 00:21:28.620 --> 00:21:31.759 Benji Fisher: so, Ralph, is that the test you wanted me to do. 195 00:21:32.218 --> 00:21:35.889 Ralf Koller: Yes and no. The question, basically is 196 00:21:36.060 --> 00:21:37.679 Ralf Koller: like quite one 197 00:21:37.760 --> 00:21:38.940 Ralf Koller: requested. 198 00:21:39.384 --> 00:21:41.990 Ralf Koller: The review is basically the string. 199 00:21:42.633 --> 00:21:47.179 Ralf Koller: If it wouldn't be done by the HTML. 5. Validation, but instead. 200 00:21:47.520 --> 00:21:49.950 Ralf Koller: done by drupal, the error would be 201 00:21:50.050 --> 00:21:53.470 Ralf Koller: the moment all email addresses must be non-empty 202 00:21:54.300 --> 00:21:55.405 Ralf Koller: and 203 00:21:57.480 --> 00:22:03.730 Ralf Koller: the default. HTML, message is, please enter a non empty email address, but both are 204 00:22:07.670 --> 00:22:08.940 Ralf Koller: bit confusing. 205 00:22:09.550 --> 00:22:13.060 Ralf Koller: But at the same time the one we've seen with 206 00:22:14.480 --> 00:22:19.240 Ralf Koller: please enter. An email address is also not exactly and precise. 207 00:22:21.476 --> 00:22:23.560 Benji Fisher: So inline form errors, is 208 00:22:23.800 --> 00:22:25.780 Benji Fisher: disabled by default. 209 00:22:26.730 --> 00:22:30.599 Benji Fisher: So if it's going to be caught by 210 00:22:31.320 --> 00:22:35.659 Benji Fisher: HTML. 5, validation how can I 211 00:22:36.010 --> 00:22:37.430 Benji Fisher: ever see 212 00:22:39.730 --> 00:22:41.190 Benji Fisher: the error message? 213 00:22:43.380 --> 00:22:46.280 skaught: We can't defeat. We can't test that with this. 214 00:22:49.350 --> 00:22:54.240 skaught: So we just need, we can. Yeah, we can't. The HTML 5 element needs to be able to accept multiple. 215 00:22:55.000 --> 00:23:03.670 skaught: You could test it by installing the control module disable HTMI. 5. Validation. And then we could skip the validation aspect of the test. 216 00:23:05.280 --> 00:23:08.167 Benji Fisher: Oh, I didn't know there was such a thing. 217 00:23:09.900 --> 00:23:11.369 Benji Fisher: What is it? Again? Disable. 218 00:23:11.370 --> 00:23:13.850 skaught: Disable HTML. 5. Validation something like that. 219 00:23:13.850 --> 00:23:14.700 Benji Fisher: With underscores. 220 00:23:14.700 --> 00:23:16.110 skaught: Fairly straightforward. Yeah. 221 00:23:17.350 --> 00:23:20.270 skaught: or yeah, it's in some some variation of that. We'll get it. 222 00:23:23.300 --> 00:23:23.980 skaught: Dick. 223 00:23:24.300 --> 00:23:25.290 Benji Fisher: Okay. 224 00:23:30.170 --> 00:23:35.609 Benji Fisher: I'll go over to another window. You can't see where I've got trush 225 00:23:35.890 --> 00:23:37.300 Benji Fisher: access to drush 226 00:23:37.890 --> 00:23:39.820 Benji Fisher: actually. 227 00:23:39.950 --> 00:23:41.410 Benji Fisher: composer. First. 228 00:23:46.280 --> 00:23:49.989 Benji Fisher: those are required drupal and then paste in the module name 229 00:23:51.560 --> 00:23:54.089 Benji Fisher: and trush enable. 230 00:23:58.470 --> 00:23:59.700 Benji Fisher: Okay. 231 00:24:00.830 --> 00:24:04.910 Benji Fisher: let's do a force reload of this page just in case 232 00:24:05.860 --> 00:24:07.899 Benji Fisher: and see what happens. 233 00:24:14.660 --> 00:24:15.950 Benji Fisher: Try that. 234 00:24:23.510 --> 00:24:24.579 Benji Fisher: There we go. 235 00:24:31.440 --> 00:24:32.340 skaught: So that's good. 236 00:24:34.070 --> 00:24:38.779 Benji Fisher: Yes, we succeeded in seeing the string in question. 237 00:24:43.290 --> 00:24:48.260 Benji Fisher: okay. So all email addresses must be nonempty. So is is that 238 00:24:49.010 --> 00:24:50.809 Benji Fisher: what we're supposed to be looking at. 239 00:24:51.560 --> 00:24:51.960 Ralf Koller: Yes! 240 00:24:52.420 --> 00:24:53.200 Benji Fisher: Okay. 241 00:24:59.085 --> 00:25:01.559 Benji Fisher: I also noticed that the 242 00:25:02.620 --> 00:25:05.009 Benji Fisher: space I entered has been stripped. 243 00:25:08.140 --> 00:25:10.079 Benji Fisher: I don't think that's a problem. 244 00:25:13.690 --> 00:25:18.389 Benji Fisher: And I think in the zoom chat, Ralph, already 245 00:25:23.010 --> 00:25:26.520 Benji Fisher: pasted in something that's not the 246 00:25:29.360 --> 00:25:31.700 Benji Fisher: message I see here. 247 00:25:38.170 --> 00:25:39.810 Benji Fisher: so what happens 248 00:25:42.120 --> 00:25:45.679 Benji Fisher: if I put in an invalid email address. 249 00:25:50.290 --> 00:25:53.469 Benji Fisher: I still just get the message. They must be non empty. 250 00:25:55.400 --> 00:25:57.890 skaught: You know, through different error types, probably. 251 00:26:02.930 --> 00:26:03.810 Benji Fisher: There we go. 252 00:26:07.970 --> 00:26:10.779 Benji Fisher: And if I had 2 invalid email addresses. 253 00:26:27.320 --> 00:26:29.769 Benji Fisher: okay, let's try 254 00:26:31.090 --> 00:26:35.600 Benji Fisher: duplicating this tab and then hitting the back button a couple of times. 255 00:27:01.120 --> 00:27:04.190 Benji Fisher: okay, all email addresses must be non-empty. 256 00:27:04.830 --> 00:27:07.159 Benji Fisher: The email address 257 00:27:07.190 --> 00:27:10.059 Benji Fisher: is not valid. Use the format 258 00:27:10.400 --> 00:27:12.949 Benji Fisher: and separate the addresses with a comma 259 00:27:14.570 --> 00:27:16.840 Benji Fisher: and the email addresses 260 00:27:16.850 --> 00:27:18.970 Benji Fisher: this and that are not valid. 261 00:27:19.100 --> 00:27:23.100 Benji Fisher: Use the format and separate the addresses with a comma 262 00:27:26.020 --> 00:27:27.630 Benji Fisher: shall we start with the 263 00:27:28.280 --> 00:27:29.460 Benji Fisher: empty 264 00:27:29.970 --> 00:27:31.510 Benji Fisher: error message? Go ahead, Ralph. 265 00:27:31.910 --> 00:27:34.700 Ralf Koller: Could it just add another 266 00:27:35.697 --> 00:27:38.739 Ralf Koller: scenario with a single email address 267 00:27:38.750 --> 00:27:39.790 Ralf Koller: which is 268 00:27:39.870 --> 00:27:41.609 Ralf Koller: written in the wrong format. 269 00:27:42.400 --> 00:27:43.210 Ralf Koller: Please. 270 00:27:43.350 --> 00:27:44.680 Benji Fisher: Certainly. 271 00:27:47.000 --> 00:27:53.590 Ralf Koller: Just to see if we use the format and separate 8 brothers by commas also appended. Or it's just the first price. 272 00:27:56.110 --> 00:27:56.890 Ralf Koller: Okay. 273 00:27:58.590 --> 00:28:04.348 Benji Fisher: So I think that's exactly the same error message is when I had 2 of them, one of which was invalid. Yeah. 274 00:28:10.790 --> 00:28:12.790 Benji Fisher: so let's start with the 275 00:28:12.830 --> 00:28:16.289 Benji Fisher: simplest one. All email addresses must be non-empty. 276 00:28:21.620 --> 00:28:24.940 Benji Fisher: and I guess before we think about the wording 277 00:28:30.170 --> 00:28:35.329 Benji Fisher: should it be a warning at all? Or or should it just automatically 278 00:28:36.380 --> 00:28:40.030 Benji Fisher: skip any Mt email addresses 279 00:28:40.230 --> 00:28:44.509 Benji Fisher: and give me the same thing as if I didn't have the extra comma. 280 00:28:45.710 --> 00:28:47.599 skaught: Input shouldn't filter user data 281 00:28:49.350 --> 00:28:51.100 skaught: should let views or correct the data. 282 00:28:54.960 --> 00:28:58.541 Benji Fisher: Even for something as as easy to miss type as 283 00:28:59.200 --> 00:28:59.770 skaught: It's in the. 284 00:28:59.770 --> 00:29:00.190 Benji Fisher: Twice. 285 00:29:00.190 --> 00:29:02.780 skaught: It's an error, and it is an error on the user side. 286 00:29:03.390 --> 00:29:05.159 Benji Fisher: Okay, also, possible. 287 00:29:05.160 --> 00:29:09.879 skaught: Validation, error that is not empty, which is correct. The error doesn't necessarily make that clear. But. 288 00:29:10.740 --> 00:29:14.889 Simo Hellsten: And also it's possible that there would be a use case where somebody 289 00:29:15.160 --> 00:29:16.510 Simo Hellsten: copy pastes 290 00:29:17.944 --> 00:29:21.759 Simo Hellsten: email addresses at Scomas and one of the paste 291 00:29:21.990 --> 00:29:23.600 Simo Hellsten: actions fails, and 292 00:29:23.670 --> 00:29:26.969 Simo Hellsten: at scoma. So it's kind of a good alert of something 293 00:29:26.980 --> 00:29:28.120 Simo Hellsten: going wrong. 294 00:29:29.390 --> 00:29:30.000 Benji Fisher: And okay. 295 00:29:32.350 --> 00:29:36.280 skaught: I do think that applies for the white space removal, too, but that's a different part. 296 00:29:40.700 --> 00:29:45.380 Benji Fisher: yeah, it's it's pretty common when processing a form 297 00:29:45.530 --> 00:29:47.440 Benji Fisher: to trim lightspace. 298 00:29:51.550 --> 00:29:56.940 Benji Fisher: So if if that's something we shouldn't be doing, then there are a lot of changes we have to make. 299 00:29:58.321 --> 00:30:04.740 Benji Fisher: Okay? So the the error message, all email addresses must be non empty. Is that clear? 300 00:30:05.130 --> 00:30:08.709 Benji Fisher: Does the user know what to do to fix the problem. 301 00:30:23.270 --> 00:30:31.039 skaught: No, it's not clear what the error was like. We're not seeing it right now, but you had like common a space, so we're not seeing it, but it wasn't clear to somebody that 302 00:30:31.250 --> 00:30:33.970 skaught: the space is not exactly the right thing, because it should 303 00:30:35.010 --> 00:30:37.339 skaught: give the fact. It should give the same error that 304 00:30:37.590 --> 00:30:41.020 skaught: space is not a valid email address. 305 00:30:41.640 --> 00:30:42.350 skaught: right 306 00:30:44.240 --> 00:30:45.239 skaught: in that respect. 307 00:30:47.930 --> 00:30:49.120 skaught: empty character. 308 00:30:49.570 --> 00:30:51.909 skaught: non-empty. I guess that's how they got into non-empty. 309 00:30:53.360 --> 00:31:00.280 Benji Fisher: So let me just borrow this text field for convenience. You would like an error message. Something like this empty string 310 00:31:00.430 --> 00:31:03.069 Benji Fisher: is not a valid. 311 00:31:03.070 --> 00:31:08.240 skaught: Oh, well, a quote with a quote with an and Bsp. Character, space, character in it, which I know. 312 00:31:10.710 --> 00:31:12.039 skaught: If that's what it is right. 313 00:31:15.230 --> 00:31:16.370 Benji Fisher: Oh. 314 00:31:26.860 --> 00:31:28.990 Benji Fisher: so I guess we we would 315 00:31:29.390 --> 00:31:33.359 Benji Fisher: want to display it as as of a visible space, right. 316 00:31:33.360 --> 00:31:33.950 skaught: Yeah, yeah. 317 00:31:34.690 --> 00:31:35.540 Benji Fisher: And 318 00:31:38.260 --> 00:31:41.079 Benji Fisher: and if we have one that's actually empty. 319 00:31:41.520 --> 00:31:43.580 Benji Fisher: then you'd want to say. 320 00:31:44.470 --> 00:31:46.559 Benji Fisher: and an actual empty string 321 00:31:47.600 --> 00:31:49.070 Benji Fisher: and 322 00:31:49.880 --> 00:31:52.080 Benji Fisher: a single space are not 323 00:31:54.300 --> 00:31:56.150 Benji Fisher: valid. Email addresses. 324 00:32:00.360 --> 00:32:03.499 skaught: Are are not valid email addresses using commas 325 00:32:04.350 --> 00:32:08.540 skaught: help to explain the fact that there's just a weird spacing in the commas. 326 00:32:11.640 --> 00:32:13.979 skaught: That's what we're not quite helping to explain, I guess. 327 00:32:15.700 --> 00:32:20.930 Benji Fisher: Okay? So I I agree with you to a point. I think. Your suggestion. 328 00:32:21.936 --> 00:32:26.410 Benji Fisher: Does a better job of explaining what the error. State is 329 00:32:28.420 --> 00:32:34.319 Benji Fisher: whereas the current error message is is skipping that step and going to how to fix it. 330 00:32:37.520 --> 00:32:38.410 Benji Fisher: and 331 00:32:40.150 --> 00:32:43.580 Benji Fisher: and I think it has to say something about commas 332 00:32:48.060 --> 00:32:50.709 Benji Fisher: but I don't like the way you you 333 00:32:50.940 --> 00:32:55.410 Benji Fisher: phrased it, putting it all into one sentence. I would rather 334 00:32:59.700 --> 00:33:01.110 Benji Fisher: sort of 335 00:33:02.953 --> 00:33:09.019 Benji Fisher: just use the same message that we use in other parts of it, and make it as a second sentence. 336 00:33:09.390 --> 00:33:15.049 Benji Fisher: So the first sentence says, what the error state is, and the second sentence. 337 00:33:15.758 --> 00:33:17.799 Benji Fisher: explains how to fix it. 338 00:33:20.320 --> 00:33:21.100 skaught: And something 339 00:33:23.490 --> 00:33:24.890 skaught: that consistency? Yes. 340 00:33:29.673 --> 00:33:30.779 Benji Fisher: Other Opinions. 341 00:33:37.120 --> 00:33:40.550 Ralf Koller: I agree with your point, Benji. 342 00:33:40.580 --> 00:33:44.011 Ralf Koller: and I've made another suggestion in the chat. 343 00:33:44.650 --> 00:33:47.800 Ralf Koller: with the addition of something like wrapped by 2 commas 344 00:33:48.490 --> 00:33:50.110 Ralf Koller: in the context of that 345 00:33:50.860 --> 00:33:52.459 Ralf Koller: space or the 346 00:33:53.630 --> 00:33:56.319 Ralf Koller: to air, quotes also make sense. 347 00:33:59.790 --> 00:34:03.130 Benji Fisher: So where would you want to add that, wrapped by 2 commas. 348 00:34:04.881 --> 00:34:06.928 Ralf Koller: Right after the second 349 00:34:09.310 --> 00:34:14.609 Ralf Koller: between the the apostrophes and the are not valid email addresses. 350 00:34:15.780 --> 00:34:16.630 Benji Fisher: So right here. 351 00:34:16.639 --> 00:34:17.289 Ralf Koller: Yeah. 352 00:34:30.409 --> 00:34:33.219 Ralf Koller: that way. It gives a pointer. 353 00:34:33.789 --> 00:34:34.759 Ralf Koller: but which 354 00:34:35.179 --> 00:34:37.669 Ralf Koller: combination of characters to scan. 355 00:34:41.744 --> 00:34:42.349 Benji Fisher: Offer. 356 00:34:44.600 --> 00:34:49.930 Ofer Shaal: Sorry I was a little in and out this core functionality or a module. 357 00:34:51.150 --> 00:34:52.570 Ofer Shaal: What we're seeing here. 358 00:34:52.750 --> 00:34:53.480 Ofer Shaal: Core 359 00:34:54.440 --> 00:34:58.689 Ofer Shaal: so because sorry if that was raised before. But 360 00:34:58.920 --> 00:35:09.340 Ofer Shaal: would it make sense to keep it simple as one email address and just allow more fields for email address instead of explaining to people how to use a complex field. 361 00:35:12.640 --> 00:35:13.330 Ofer Shaal: think it's because. 362 00:35:13.330 --> 00:35:18.080 skaught: Says, email addresses, email fields. Take comma separated, string. 363 00:35:19.320 --> 00:35:26.740 Ofer Shaal: No, I I understand. I I understand that I'm saying, for people who are not from drupal right out there in the world. 364 00:35:27.700 --> 00:35:32.770 Ofer Shaal: fields can help us by the browser almost automatically, to make sure the email addresses 365 00:35:33.140 --> 00:35:34.240 Ofer Shaal: is okay. 366 00:35:34.730 --> 00:35:40.919 Ofer Shaal: and by not trying to put it all in one field, I think we? Then we don't need to explain to people 367 00:35:41.290 --> 00:35:42.300 Ofer Shaal: how to 368 00:35:42.750 --> 00:35:50.339 Ofer Shaal: enter that. So it would need a button and other fields added, but I think the experience would be much simpler, for most. 369 00:35:53.600 --> 00:35:57.739 skaught: I. I agree that actually doesn't make sense. You're talking about Cardinal Field sent for each. 370 00:36:04.660 --> 00:36:07.520 Aaron McHale: I don't know if that works here. 371 00:36:09.430 --> 00:36:24.890 Aaron McHale: Sorry I don't. I don't know if that works, because we're kind of talking about on the form input, level. So like, I think so, we're like, you're thinking about like how the field ui, you can add, you know, multiple fields. But like what we're looking here is actually 372 00:36:26.000 --> 00:36:29.690 Aaron McHale: like, if you wanted to do that on the farm level, you would have to have like 373 00:36:29.990 --> 00:36:33.590 Aaron McHale: multiple form elements 374 00:36:34.040 --> 00:36:35.289 Aaron McHale: that makes sense. 375 00:36:35.610 --> 00:36:37.889 Aaron McHale: We're like kind of a lower level here. 376 00:36:37.990 --> 00:36:39.859 Aaron McHale: I'm not sure if I'm explaining that one. 377 00:36:41.250 --> 00:36:47.320 Ofer Shaal: No, I think I I understand this. This technicality involved. And maybe it's not something that's already baked. I'm just saying 378 00:36:47.540 --> 00:36:53.329 Ofer Shaal: as from a ux perspective and what I want people to experience when they come to drupal. 379 00:36:53.340 --> 00:36:58.400 Ofer Shaal: I wish they wouldn't even need to learn how to use this kind of format, but be able to just 380 00:36:58.650 --> 00:37:01.269 Ofer Shaal: put email addresses in multiple fields. 381 00:37:01.540 --> 00:37:02.060 Ofer Shaal: But people. 382 00:37:02.060 --> 00:37:05.749 skaught: Melissa madruple are familiar with this because it comes from email itself 383 00:37:05.970 --> 00:37:07.599 skaught: right? It is outside of dribble. 384 00:37:10.430 --> 00:37:18.900 Ofer Shaal: I I'm I'm referring to now. You can add a comma like you all of a sudden. Don't have the browser telling you. Yes, all these are valid email addresses. 385 00:37:21.050 --> 00:37:21.609 Ofer Shaal: No, I mean. 386 00:37:21.610 --> 00:37:27.730 Benji Fisher: The only reason the browser isn't telling us that is that we installed a contrib module. 387 00:37:28.317 --> 00:37:39.369 Benji Fisher: Most of us didn't know about it, but Scott did. There's a contrib module that disables HTML. 5. Validation, and we had to install that in order to see the drupal error messages 388 00:37:39.680 --> 00:37:40.850 Benji Fisher: because 389 00:37:41.000 --> 00:37:44.879 Benji Fisher: we weren't getting to the drupal error messages before. It was just 390 00:37:44.960 --> 00:37:47.439 Benji Fisher: stopping at HTML. 5. Validation. 391 00:37:48.790 --> 00:37:54.419 Ofer Shaal: And with HTML. 5, you were able to add multiple, and it would be checking each one. 392 00:37:55.130 --> 00:37:56.860 skaught: It would check the email address 393 00:37:57.060 --> 00:37:58.990 skaught: at the same time. First, yes. 394 00:37:59.120 --> 00:38:00.349 skaught: before the phone submit. 395 00:38:00.350 --> 00:38:01.259 Ofer Shaal: I didn't know that. 396 00:38:02.400 --> 00:38:04.349 Ofer Shaal: Okay, so I think it back. 397 00:38:07.720 --> 00:38:08.900 Benji Fisher: see a couple of comedy like. 398 00:38:08.900 --> 00:38:11.970 Ofer Shaal: I think I missed that as well. There. 399 00:38:13.200 --> 00:38:17.819 Benji Fisher: I see a couple of comments in the chat. Let's save semos, which is another thing to test 400 00:38:18.431 --> 00:38:23.500 Benji Fisher: for a few minutes, and Aaron says I thought it was a semi colon rather than a comma. 401 00:38:24.570 --> 00:38:28.049 Aaron McHale: Yeah, I was just referring to like email specification. I think it's 402 00:38:28.090 --> 00:38:36.559 Aaron McHale: I. I didn't realize you. It was. There's a comma also alert. I thought it was just a semicolon that you would normally use to separate email addresses. 403 00:38:38.030 --> 00:38:39.080 Benji Fisher: I'm not sure. 404 00:38:47.020 --> 00:38:48.780 Benji Fisher: well, let's let's try 405 00:38:48.980 --> 00:38:50.250 Benji Fisher: Casimos 406 00:38:51.750 --> 00:38:55.679 Benji Fisher: experiment. He's got some spaces and 407 00:38:56.760 --> 00:38:59.990 Benji Fisher: accidentally types a comma instead of a dot. 408 00:39:05.790 --> 00:39:08.950 Benji Fisher: So there, it's email, comma com 409 00:39:08.970 --> 00:39:10.860 Benji Fisher: rather than email.com. 410 00:39:11.070 --> 00:39:14.459 Benji Fisher: So that's certainly a reasonable mistake to make. 411 00:39:16.810 --> 00:39:20.030 Benji Fisher: All email addresses must be non-empty. 412 00:39:22.500 --> 00:39:23.740 Benji Fisher: so I guess 413 00:39:24.320 --> 00:39:30.250 Benji Fisher: it's checking for empty email addresses before it's checking for valid email addresses. 414 00:39:30.450 --> 00:39:33.709 Benji Fisher: So if I get rid of the empty one 415 00:39:35.610 --> 00:39:38.599 Benji Fisher: and again, notice that it is trimming spaces. 416 00:39:43.300 --> 00:39:46.189 Benji Fisher: here. The email address Comm is not valid. 417 00:39:50.510 --> 00:39:55.159 Simo Hellsten: How about? Just remove the com and add admin at email. 418 00:40:00.090 --> 00:40:00.880 Benji Fisher: Like that? 419 00:40:02.940 --> 00:40:05.139 Benji Fisher: Or do you want me to remove the comm as well. 420 00:40:05.140 --> 00:40:08.980 Simo Hellsten: Well, you can't remove the com, but it doesn't change the result. 421 00:40:17.900 --> 00:40:21.300 Simo Hellsten: So it it allows email without a TOD. 422 00:40:23.370 --> 00:40:27.300 Benji Fisher: Right. I bet the HTML 5 validation would catch that. 423 00:40:34.220 --> 00:40:36.480 Simo Hellsten: What if there is only one email address? 424 00:40:37.950 --> 00:40:41.619 Simo Hellsten: Yeah, and like it removed everything after comma. 425 00:40:44.830 --> 00:40:46.160 Benji Fisher: You want to keep the comma. 426 00:40:46.160 --> 00:40:47.030 Simo Hellsten: No. 427 00:40:48.380 --> 00:40:50.000 Simo Hellsten: or we could try with. 428 00:40:50.250 --> 00:40:51.750 Simo Hellsten: Let's try this first. 429 00:40:58.170 --> 00:40:59.030 Simo Hellsten: Okay. 430 00:41:01.280 --> 00:41:02.380 Benji Fisher: And let me 431 00:41:03.600 --> 00:41:05.580 Benji Fisher: uninstall the 432 00:41:05.800 --> 00:41:06.950 Benji Fisher: disable 433 00:41:07.060 --> 00:41:08.080 Benji Fisher: bachel 434 00:41:08.800 --> 00:41:13.829 Benji Fisher: little double negative. There, let let me restore HTML. 5. Validation. 435 00:41:14.090 --> 00:41:16.180 Benji Fisher: and see what happens. Now 436 00:41:16.270 --> 00:41:19.220 Benji Fisher: I expect it'll complain. No 437 00:41:20.790 --> 00:41:21.780 Benji Fisher: interesting. 438 00:41:32.640 --> 00:41:35.049 Benji Fisher: I guess my thought is that 439 00:41:37.030 --> 00:41:38.430 Benji Fisher: we're we're sort of 440 00:41:38.710 --> 00:41:42.829 Benji Fisher: arguing over. I'm we're we're debating 441 00:41:43.660 --> 00:41:47.320 Benji Fisher: things that really aren't that unfamiliar. 442 00:41:48.875 --> 00:41:49.860 Benji Fisher: I, 443 00:41:50.590 --> 00:41:57.779 Benji Fisher: you know whether it's internal to drupal or not. Separating things by comma is is pretty common. 444 00:41:58.560 --> 00:42:00.970 Benji Fisher: and I think that 445 00:42:01.270 --> 00:42:02.990 Benji Fisher: most use cases. 446 00:42:03.010 --> 00:42:07.630 Benji Fisher: People will be happy to use whatever interface they're given, whether it's 447 00:42:07.690 --> 00:42:11.019 Benji Fisher: multiple instances of the email field 448 00:42:11.300 --> 00:42:12.320 Benji Fisher: or 449 00:42:13.192 --> 00:42:15.939 Benji Fisher: or a single field separated by commas. 450 00:42:16.745 --> 00:42:22.280 Benji Fisher: I really don't think people are are going to get confused by it. And 451 00:42:22.670 --> 00:42:27.640 Benji Fisher: yeah, a lot of the time. A single field is easier to manage than multiple fields. 452 00:42:28.630 --> 00:42:30.529 Benji Fisher: and Simo 453 00:42:31.380 --> 00:42:32.760 Benji Fisher: provides 454 00:42:35.990 --> 00:42:38.290 Benji Fisher: another stack overflow. 455 00:42:39.120 --> 00:42:43.880 Benji Fisher: Why does HTML. 5. Form validation allow emails without a dot? 456 00:42:45.266 --> 00:42:47.410 Benji Fisher: Is the answer interesting. 457 00:42:48.600 --> 00:42:51.860 Benji Fisher: You can theoretically have an address without a.in it. 458 00:42:56.560 --> 00:43:00.840 Benji Fisher: and it gives some examples of valid emails don't involve dots. 459 00:43:02.330 --> 00:43:03.430 Benji Fisher: All right. 460 00:43:04.430 --> 00:43:09.680 Benji Fisher: HTML. 5. Validation allows it, because I guess the the Rfc. Allows it. 461 00:43:16.820 --> 00:43:19.980 Benji Fisher: including you could provide an IPV. 6. 462 00:43:25.520 --> 00:43:28.729 Benji Fisher: hostname, or IP. Address 463 00:43:29.350 --> 00:43:30.730 Benji Fisher: rather than 464 00:43:30.800 --> 00:43:32.210 Benji Fisher: but we're more used to. 465 00:43:40.230 --> 00:43:47.009 Benji Fisher: yeah. So I guess before discussing the wording of the error messages, we we should settle this question. 466 00:43:47.747 --> 00:43:50.310 Benji Fisher: I guess. Offer, and and Scott. 467 00:43:50.740 --> 00:43:52.289 Benji Fisher: if I remember correctly. 468 00:43:52.780 --> 00:43:54.260 Benji Fisher: both agree that 469 00:43:54.950 --> 00:44:01.350 Benji Fisher: having multiple fields would be a better user experience than comma separated, and I disagree. What 470 00:44:02.620 --> 00:44:05.329 Benji Fisher: other opinions. Other arguments, one way or the other. 471 00:44:08.670 --> 00:44:14.309 Simo Hellsten: Well, usually when I use Thunderbird, I just copy paste from a spreadsheet 472 00:44:14.950 --> 00:44:15.640 Simo Hellsten: like 473 00:44:16.250 --> 00:44:20.430 Simo Hellsten: rows of email addresses. And then it that 474 00:44:20.640 --> 00:44:21.470 Simo Hellsten: up 475 00:44:21.650 --> 00:44:23.749 Simo Hellsten: Thunderbird converts it 476 00:44:24.080 --> 00:44:26.570 Simo Hellsten: into a comma separated list 477 00:44:26.770 --> 00:44:27.840 Simo Hellsten: first. 478 00:44:27.940 --> 00:44:29.950 Simo Hellsten: and then into a kind of a 479 00:44:30.350 --> 00:44:33.100 Simo Hellsten: except for its fields. So 480 00:44:33.170 --> 00:44:36.940 Simo Hellsten: if we have something else, then comma separated list. 481 00:44:37.410 --> 00:44:39.819 Simo Hellsten: Like, if we have individual fields 482 00:44:40.320 --> 00:44:41.840 Simo Hellsten: for emails, then it 483 00:44:41.910 --> 00:44:44.080 Simo Hellsten: it would be user-friendly 484 00:44:44.110 --> 00:44:47.100 Simo Hellsten: to allow to paste comma separated list 485 00:44:47.170 --> 00:44:50.500 Simo Hellsten: so that it converts it into those fields. 486 00:44:51.240 --> 00:44:53.499 Simo Hellsten: and that's quite a bit bigger 487 00:44:54.150 --> 00:44:55.379 Simo Hellsten: thing to do. 488 00:44:56.400 --> 00:44:57.709 Simo Hellsten: But I think echo 489 00:44:57.790 --> 00:44:59.990 Simo Hellsten: copy pasting comma separated lists 490 00:45:01.850 --> 00:45:03.630 Simo Hellsten: is quite a common 491 00:45:04.170 --> 00:45:05.360 Simo Hellsten: use case. 492 00:45:07.510 --> 00:45:18.189 Aaron McHale: It's not totally uncommon, because, historically, I email clients, you would just keep adding email addresses to the same fields and even more than clients like outlook or gmail you. 493 00:45:18.330 --> 00:45:24.960 Aaron McHale: You kind of do that. They make it prettier by adding little, you know, styling around each gmail, but it's essentially 494 00:45:25.080 --> 00:45:26.530 Aaron McHale: about same thing. 495 00:45:27.085 --> 00:45:29.760 Aaron McHale: I think people it's like it's. 496 00:45:29.810 --> 00:45:36.429 Aaron McHale: And and the other thing is like to consider is like, we're not this. So what's happening here doesn't doesn't change 497 00:45:36.971 --> 00:45:42.700 Aaron McHale: doesn't like inherently change every email, field and triple to just all of a sudden 498 00:45:42.890 --> 00:45:52.689 Aaron McHale: start, allowing, because I think they would. They each field would then have to independently opt into this. And in a lot of cases like, if you go to add an email field through the field Ui. 499 00:45:52.720 --> 00:45:56.160 Aaron McHale: and you want multi value. You're probably gonna get like. 500 00:45:56.620 --> 00:46:09.434 Aaron McHale: you know, this, this, the what you would get if you added you know, multi value text field, which is like you get a separate field for each item. Not for sure. That's something we could look at some point. But 501 00:46:09.800 --> 00:46:11.040 Aaron McHale: I think that's 502 00:46:12.100 --> 00:46:13.809 Aaron McHale: unless I misunderstood it. 503 00:46:14.430 --> 00:46:18.840 Aaron McHale: I think that's what's more relevant here is like that messaging that you get. 504 00:46:20.670 --> 00:46:26.015 Benji Fisher: Yeah, so this is a form Api change. And the form needs to declare multiple equals true 505 00:46:27.320 --> 00:46:29.390 Benji Fisher: in order to get the new behavior. 506 00:46:32.530 --> 00:46:36.850 Benji Fisher: Semo points out that we can have different widgets in contrib modules. 507 00:46:39.060 --> 00:46:41.682 Benji Fisher: one little experiment I wanna try 508 00:46:42.490 --> 00:46:43.400 Benji Fisher: I've 509 00:46:43.870 --> 00:46:46.069 Benji Fisher: I have a hardest tab in there. 510 00:46:47.373 --> 00:46:48.639 Benji Fisher: Which I 511 00:46:49.500 --> 00:46:52.989 Benji Fisher: I got that by copying and pasting from my text editor. 512 00:46:53.460 --> 00:46:58.909 Benji Fisher: and I expect it won't like that, because it insists on comma separated email addresses. 513 00:47:04.400 --> 00:47:05.540 Benji Fisher: ha! That's not 514 00:47:07.940 --> 00:47:12.119 Benji Fisher: oh, that! That's the HTL. 5. Validation that doesn't like it. 515 00:47:14.970 --> 00:47:19.779 Benji Fisher: and let me again disable HTML. 5. Validation. 516 00:47:35.050 --> 00:47:40.009 Benji Fisher: And since there are no commas, it interprets the whole thing as a single 517 00:47:40.810 --> 00:47:42.470 Benji Fisher: email address. Okay? 518 00:47:45.880 --> 00:47:48.740 Benji Fisher: So I was just sort of testing 519 00:47:48.770 --> 00:47:51.520 Benji Fisher: Simo's workflow of of copying from 520 00:47:52.500 --> 00:47:57.059 Benji Fisher: a spreadsheet with hard tabs and pasting into the field, and that wouldn't work 521 00:48:01.170 --> 00:48:03.139 Benji Fisher: So other thoughts on 522 00:48:03.750 --> 00:48:06.169 Benji Fisher: comma separated versus separate fields. 523 00:48:08.100 --> 00:48:10.989 Benji Fisher: and if there are no further comments, then 524 00:48:12.160 --> 00:48:13.600 Benji Fisher: we can have a vote. 525 00:48:15.940 --> 00:48:23.279 skaught: Actually just the the I think the the option of having multiple fields could be actually another option of the field 526 00:48:24.100 --> 00:48:28.449 skaught: element to actually do that, then multiple. And whether they want single field or multiple 527 00:48:28.900 --> 00:48:29.900 skaught: cardinal fields. 528 00:48:30.530 --> 00:48:33.300 Benji Fisher: Yeah, certainly. The field Api. We're we're talking. 529 00:48:33.485 --> 00:48:33.670 skaught: Like. 530 00:48:33.670 --> 00:48:37.905 Benji Fisher: Form Api here, but the the field Api could certainly 531 00:48:38.640 --> 00:48:40.400 Benji Fisher: give you multiple fields. 532 00:48:41.590 --> 00:48:47.480 Benji Fisher: I don't know how easy that is to do with just the form. Api, Ralph, what are you giving a thumbs up to? 533 00:48:48.330 --> 00:48:49.690 Ralf Koller: Address cost idea 534 00:48:51.120 --> 00:48:52.810 Ralf Koller: to make it deliberate. 535 00:48:52.810 --> 00:48:53.680 skaught: We just go. 536 00:48:53.680 --> 00:48:56.730 Ralf Koller: Or the person? Yeah, and move it to a follow up issue. Maybe 537 00:48:59.030 --> 00:49:01.849 Ralf Koller: the idea to make the distinguishment 538 00:49:02.560 --> 00:49:06.099 Ralf Koller: between those 2 options. I consider that good idea, because 539 00:49:06.310 --> 00:49:11.270 Ralf Koller: basically, it just depends on the number of emails that should be entered. 540 00:49:11.560 --> 00:49:17.519 Ralf Koller: If it's one or 2 or 3, it's okay to do it in the field context, the other way around 541 00:49:17.810 --> 00:49:23.490 Ralf Koller: provide the option with a comma. Separate list is as well good, especially if you have 50 542 00:49:23.560 --> 00:49:24.670 Ralf Koller: or 20 543 00:49:24.940 --> 00:49:29.560 Ralf Koller: in a row. Then it gets cumbersome if you do it manually in air, quotes 544 00:49:30.060 --> 00:49:31.249 Ralf Koller: via the ui. 545 00:49:34.760 --> 00:49:35.960 Benji Fisher: Yeah, let me. 546 00:49:38.910 --> 00:49:42.990 Aaron McHale: So I was. Gonna say, I think my my concern, though, is that like 547 00:49:43.670 --> 00:49:52.470 Aaron McHale: that feels out of scope for the form Api, because if you want, like, the form, Api is intentionally designed 548 00:49:52.760 --> 00:49:56.920 Aaron McHale: to be very like. Every component of it is very minimal. 549 00:49:57.100 --> 00:50:01.630 Aaron McHale: Like, if you want a grouping of multiple fields you have to like, set up 550 00:50:01.920 --> 00:50:04.310 Aaron McHale: the renderer rate to do it 551 00:50:04.360 --> 00:50:06.060 Aaron McHale: so to me. 552 00:50:07.400 --> 00:50:12.910 Aaron McHale: because the field ui can already do that. It seems out of scope for the form 553 00:50:13.380 --> 00:50:25.090 Aaron McHale: ui to to have the content of like turn on multiples. And all of a sudden you get what you get with the field ui, which is like multiple form elements working together to create that experience. 554 00:50:25.370 --> 00:50:30.829 Aaron McHale: You know the button and the Ajax callback that adds the additional field. All that stuff is like 555 00:50:31.270 --> 00:50:36.829 Aaron McHale: construction. What? We're looking here as a very an individual, a single component 556 00:50:38.330 --> 00:50:41.770 skaught: Date element does this. The date element is multiple input elements. 557 00:50:42.780 --> 00:50:44.330 Aaron McHale: Oh! In the form Api. 558 00:50:44.330 --> 00:50:44.890 skaught: Yeah. 559 00:50:46.470 --> 00:50:47.520 Aaron McHale: Interesting 560 00:50:50.410 --> 00:50:54.179 Aaron McHale: I wouldn't have. I wouldn't have expected that cause. I 561 00:50:54.270 --> 00:50:59.330 Aaron McHale: figured that would have used like Ajax callbacks and stuff that you need to. 562 00:50:59.780 --> 00:51:03.039 Benji Fisher: Arbitrary multiple or just, it allows start and end. 563 00:51:08.720 --> 00:51:12.940 skaught: It allows for multiple input elements, the date to be broken apart into different inputs. 564 00:51:13.230 --> 00:51:15.479 skaught: You can have one date string with, like, you know. 565 00:51:15.590 --> 00:51:20.099 skaught: year, dash, month, dash, day, or separate into post for each aspect that they field. 566 00:51:21.590 --> 00:51:24.889 Aaron McHale: Do you have to like? Do you have to set up those inputs? 567 00:51:25.080 --> 00:51:25.810 Aaron McHale: Secondly. 568 00:51:25.810 --> 00:51:26.960 skaught: Part of the form Api. 569 00:51:27.220 --> 00:51:29.249 skaught: their form set their field settings on. 570 00:51:29.600 --> 00:51:33.860 Benji Fisher: Yeah. But that's different. That's not multiple dates. That's just a complex. 571 00:51:34.380 --> 00:51:34.900 Benji Fisher: It's a. 572 00:51:34.900 --> 00:51:39.049 skaught: Setting of the field, of the of the of the element itself. 573 00:51:39.230 --> 00:51:40.499 skaught: It's an option of the owner. 574 00:51:41.580 --> 00:51:50.500 Benji Fisher: Yes, it's an option to make a more complex form for a single date. It's not an option to provide multiple dates. If if I, if I understand you correctly. 575 00:51:51.010 --> 00:51:56.314 skaught: No, it's not our date range. Sorry. I don't mean to say it's the date range or multiple date selection. 576 00:52:01.030 --> 00:52:04.410 Benji Fisher: Right? So that that's that's different from what we're we're discussing 577 00:52:05.230 --> 00:52:09.580 Benji Fisher: here. That that's that's a a a complex form for a date. 578 00:52:14.440 --> 00:52:22.900 Benji Fisher: I. I I think I agree with with Aaron that form Api and Field Api have different uses, and field Api is the appropriate way 579 00:52:23.000 --> 00:52:24.200 Benji Fisher: to provide 580 00:52:24.630 --> 00:52:25.790 Benji Fisher: multiple 581 00:52:27.200 --> 00:52:28.280 Benji Fisher: fields 582 00:52:28.660 --> 00:52:30.709 Benji Fisher: for multiple email addresses. 583 00:52:31.030 --> 00:52:36.049 Benji Fisher: and that if the form Api is going to handle it, it it should be something 584 00:52:36.640 --> 00:52:39.679 Benji Fisher: simpler by default. Of course, you can 585 00:52:40.120 --> 00:52:41.250 Benji Fisher: provide. 586 00:52:44.550 --> 00:52:46.390 Benji Fisher: a different you. 587 00:52:47.140 --> 00:52:49.309 Benji Fisher: I guess you'd have to override the 588 00:52:49.610 --> 00:52:51.500 Benji Fisher: what the form Api provides. 589 00:52:55.560 --> 00:52:59.059 Benji Fisher: so offer had to drop. That leaves us with 6. 590 00:52:59.160 --> 00:53:04.195 Benji Fisher: So who? Who is in favor? I'll I'll I'll count offers as being in favor of 591 00:53:05.330 --> 00:53:06.740 Benji Fisher: multiple fields. 592 00:53:06.860 --> 00:53:11.880 Benji Fisher: And and Scott, I think you still are, who else is in favor? Can you just give a thumbs up if you 593 00:53:12.818 --> 00:53:16.250 Benji Fisher: want to handle multiple email addresses with multiple 594 00:53:16.840 --> 00:53:18.240 Benji Fisher: text fields 595 00:53:22.030 --> 00:53:22.940 Benji Fisher: and Chao. 596 00:53:23.530 --> 00:53:28.469 Benji Fisher: and can you give a thumbs up if you're in favor of doing it? With a comma separated list? 597 00:53:31.570 --> 00:53:35.799 Benji Fisher: Ralph and Aaron and Semo and I 598 00:53:37.180 --> 00:53:42.129 Benji Fisher: and Thomas is not voting. So that's 4 to 2 with one extension. 599 00:53:42.810 --> 00:53:43.900 Benji Fisher: So 600 00:53:46.150 --> 00:53:48.200 Benji Fisher: okay, so I think we'll, we'll 601 00:53:48.710 --> 00:53:50.430 Benji Fisher: stick with the way the 602 00:53:51.810 --> 00:53:54.090 Benji Fisher: issue is currently implemented. 603 00:53:55.240 --> 00:53:57.089 Benji Fisher: And we still have to 604 00:53:58.000 --> 00:54:00.680 Benji Fisher: decide on the wording. 605 00:54:02.790 --> 00:54:04.600 Benji Fisher: and I think we were 606 00:54:05.530 --> 00:54:09.030 Benji Fisher: reaching consensus that we should have the same 607 00:54:09.560 --> 00:54:13.740 Benji Fisher: format for all all the various errors, we should always have. 608 00:54:14.732 --> 00:54:16.660 Benji Fisher: The second part. 609 00:54:16.810 --> 00:54:20.399 Benji Fisher: and we should. We should always start with a statement of 610 00:54:20.530 --> 00:54:21.600 Benji Fisher: problem 611 00:54:26.260 --> 00:54:32.340 Benji Fisher: and and don't treat empty as different from other invalid 612 00:54:32.390 --> 00:54:34.369 Benji Fisher: email addresses just 613 00:54:34.620 --> 00:54:37.660 Benji Fisher: printed out either as an empty string or 614 00:54:38.691 --> 00:54:42.030 Benji Fisher: a string with a non-breaking space in it. 615 00:54:42.360 --> 00:54:44.320 Benji Fisher: So would that handle all cases. 616 00:54:46.560 --> 00:54:49.559 Benji Fisher: The email address, single email 617 00:54:50.540 --> 00:54:52.269 Benji Fisher: address is not valid. 618 00:54:53.270 --> 00:54:57.089 Benji Fisher: The email address is not valid. Use the format 619 00:54:57.390 --> 00:54:58.410 Benji Fisher: da da. 620 00:54:58.420 --> 00:55:02.280 Benji Fisher: The email addresses this and that are not valid. 621 00:55:14.630 --> 00:55:16.470 Aaron McHale: Does it? Let you 622 00:55:16.480 --> 00:55:18.670 Aaron McHale: add, like a semicolon. 623 00:55:20.730 --> 00:55:24.400 Aaron McHale: I can't remember if we resolved that earlier. If it lets you do that. 624 00:55:25.380 --> 00:55:27.819 Aaron McHale: I think I think that's also allowed, though. 625 00:55:29.260 --> 00:55:30.929 Benji Fisher: So let's see, we can 626 00:55:32.130 --> 00:55:37.100 Benji Fisher: test. I expect it will object to this, because it expects a comma separated list 627 00:55:38.650 --> 00:55:42.810 Benji Fisher: right? It does not recognize the semicolon as a separator. 628 00:55:43.030 --> 00:55:44.539 Benji Fisher: and if I 629 00:55:45.430 --> 00:55:49.539 Benji Fisher: re-enable HTML. 5. Validation 630 00:56:06.010 --> 00:56:07.190 Benji Fisher: there we go. 631 00:56:07.360 --> 00:56:10.149 Benji Fisher: Html. 5. Validation 632 00:56:10.590 --> 00:56:12.889 Benji Fisher: also objects to the semi-call. One. 633 00:56:14.370 --> 00:56:17.440 Aaron McHale: That's interesting. I thought a semicolon was like A 634 00:56:18.270 --> 00:56:20.160 Aaron McHale: was a lot was allowed because 635 00:56:20.170 --> 00:56:22.660 Aaron McHale: I've used that a lot of times. But interesting. 636 00:56:27.610 --> 00:56:29.740 Simo Hellsten: I think outlook uses that 637 00:56:31.110 --> 00:56:32.010 Simo Hellsten: properly smart. 638 00:56:32.010 --> 00:56:32.750 Aaron McHale: Yeah. 639 00:56:33.120 --> 00:56:45.913 Aaron McHale: I mean, I've used it in other systems like and there. So I don't know if that's I again, this is, it's hard to know if that's part of the spec without looking up, I should. Or if that's just like all my systems being more flexible. 640 00:56:47.380 --> 00:56:52.669 Benji Fisher: Ye yeah can can do whatever processing they want. And 641 00:56:53.670 --> 00:56:57.379 Benji Fisher: Who was it Simo was talking about pasting in from spreadsheets 642 00:56:57.420 --> 00:56:59.899 Benji Fisher: which would give you hard tabs, I think 643 00:57:00.760 --> 00:57:01.540 Aaron McHale: And. 644 00:57:01.540 --> 00:57:05.969 Benji Fisher: So there are certainly used cases and reasons for handling things. 645 00:57:07.630 --> 00:57:14.240 Benji Fisher: that don't comply with the Rfc. As long as what you send to Smtp does 646 00:57:14.750 --> 00:57:16.150 Benji Fisher: match the Rfc. 647 00:57:16.150 --> 00:57:16.760 Aaron McHale: Yeah. 648 00:57:17.050 --> 00:57:21.189 Aaron McHale: I want. I wonder if again, without checking being 649 00:57:21.540 --> 00:57:26.760 Aaron McHale: I wonder if that's something that could be like a follow up? Because again, like, there is cases where maybe 650 00:57:27.230 --> 00:57:30.530 Aaron McHale: yeah, I'm gonna look it up before I say anything else. 651 00:57:31.630 --> 00:57:36.759 Benji Fisher: So Ralph is the one who suggested adding this phrase, wrapped by 2 commas 652 00:57:38.800 --> 00:57:43.919 Benji Fisher: and I suggested adding the full second sentence. 653 00:57:44.290 --> 00:57:45.520 Benji Fisher: and 654 00:57:46.530 --> 00:57:49.780 Benji Fisher: I'm pretty sure we don't need both of them. Ralph, do you still 655 00:57:50.150 --> 00:57:52.900 Benji Fisher: think it's a good idea to have this phrase in here? 656 00:57:52.950 --> 00:57:56.450 Benji Fisher: Would you rather have that instead of the second sentence, or or both. 657 00:57:57.970 --> 00:57:58.580 Ralf Koller: Let's 658 00:57:59.360 --> 00:58:15.289 Ralf Koller: take the following scenario. You have a commasability list of, let's say, 5 or 6 email addresses. They look perfectly fine. And you just as a second comma slipped in at 1 point, and everything looks perfectly fine, and to to figure out 659 00:58:15.640 --> 00:58:16.550 Ralf Koller: with it 660 00:58:17.350 --> 00:58:26.750 Ralf Koller: general recommendation, use the format and blah blah blah! It's not entirely sure where the problem is. And 661 00:58:26.950 --> 00:58:28.480 Ralf Koller: narrowing down 662 00:58:29.370 --> 00:58:34.910 Ralf Koller: the problem with that space and wrapped by 2 commas, it makes it more clear 663 00:58:35.650 --> 00:58:38.830 Ralf Koller: where the problem could lie, and that the person 664 00:58:38.940 --> 00:58:40.060 Ralf Koller: editing 665 00:58:40.380 --> 00:58:44.979 Ralf Koller: is focusing in the part between the email addresses. 666 00:58:48.090 --> 00:58:51.440 Ralf Koller: Otherwise it's just a long list of of characters. 667 00:58:52.310 --> 00:58:53.750 Ralf Koller: and might be overwhelming. 668 00:58:57.100 --> 00:58:57.880 Benji Fisher: Al. 669 00:59:03.860 --> 00:59:07.120 Benji Fisher: On the other hand, it's making the error message longer. 670 00:59:12.790 --> 00:59:20.429 Benji Fisher: and I sort of feel that if if I'm pasting in 20 email addresses separated by commas. It's the responsibility is on me to 671 00:59:21.490 --> 00:59:24.350 Benji Fisher: get it right and figure out what went wrong. 672 00:59:24.990 --> 00:59:25.590 Ralf Koller: Sure. 673 00:59:33.610 --> 00:59:35.949 Benji Fisher: And the the error message does 674 00:59:37.190 --> 00:59:40.410 Benji Fisher: sort of make it clear that there's some sort of empty 675 00:59:40.620 --> 00:59:42.739 Benji Fisher: email address which 676 00:59:44.120 --> 00:59:47.259 Benji Fisher: suggests that I should be looking for that double comma 677 00:59:53.030 --> 00:59:55.260 Benji Fisher: Any other opinions on whether we should 678 00:59:55.750 --> 00:59:58.450 Benji Fisher: have the the phrase wrapped by 2 commas. 679 01:00:01.900 --> 01:00:04.059 Benji Fisher: perhaps separated by 2 commas 680 01:00:06.480 --> 01:00:08.519 Benji Fisher: inside 2 commas 681 01:00:17.360 --> 01:00:20.009 Benji Fisher: who thinks it should be removed, and we should 682 01:00:20.570 --> 01:00:23.130 Benji Fisher: just use the second sentence to 683 01:00:24.040 --> 01:00:25.209 Benji Fisher: explain the point. 684 01:00:30.150 --> 01:00:35.229 skaught: I think that that actually makes more sense. I'm almost ill annoyed now that it doesn't remove the 685 01:00:35.240 --> 01:00:36.910 skaught: an empty double comma 686 01:00:37.370 --> 01:00:39.489 skaught: because it does remove white space. It doesn't see, you know. 687 01:00:40.300 --> 01:00:41.310 skaught: white space. 688 01:00:47.270 --> 01:00:47.920 Benji Fisher: That's right. 689 01:00:47.920 --> 01:00:49.309 skaught: I'll get the sky again. 690 01:00:50.060 --> 01:00:52.210 Simo Hellsten: If it would have separate fields. 691 01:00:52.590 --> 01:00:57.059 Simo Hellsten: I think usually the empty fields in the middle, they get removed 692 01:00:58.520 --> 01:00:59.740 Simo Hellsten: in multiple. 693 01:01:00.350 --> 01:01:01.140 Simo Hellsten: Yeah, yeah. 694 01:01:01.140 --> 01:01:01.849 skaught: I know which me. 695 01:01:05.370 --> 01:01:06.729 Benji Fisher: I think we debated that 696 01:01:06.810 --> 01:01:08.649 Benji Fisher: particular point, or 697 01:01:09.310 --> 01:01:11.520 Benji Fisher: it came up when we were testing 698 01:01:12.432 --> 01:01:14.490 Benji Fisher: an issue a few months ago. 699 01:01:15.984 --> 01:01:20.530 Benji Fisher: I'm going to make one slight adjustment to this, especially 700 01:01:21.160 --> 01:01:24.810 Benji Fisher: since I noticed that Xj. M. 701 01:01:25.440 --> 01:01:28.230 Benji Fisher: Commented already on this issue. 702 01:01:28.600 --> 01:01:32.020 Benji Fisher: and I know that Xjm is a stickler for grammar. 703 01:01:33.910 --> 01:01:38.589 Benji Fisher: Use the format user@example.com, and separate 704 01:01:38.650 --> 01:01:40.570 Benji Fisher: the addresses with a comma. 705 01:01:41.010 --> 01:01:46.550 Benji Fisher: That's a compound sentence with 2 clauses, and there should be a comma in between them. 706 01:01:54.140 --> 01:01:59.559 Benji Fisher: and it's the sentence. Then, with period. Oh, it did end with period. I just didn't see it. 707 01:02:04.350 --> 01:02:05.160 Benji Fisher: So our 708 01:02:05.420 --> 01:02:06.689 Benji Fisher: are we done. 709 01:02:09.040 --> 01:02:10.310 Aaron McHale: Yeah. And 710 01:02:10.490 --> 01:02:16.919 Aaron McHale: apparently, although I'm trying to skin the Rfc. Document, but failing to find it. But according to cycle before 711 01:02:17.602 --> 01:02:37.937 Aaron McHale: put the answer the link to Rfc. But didn't say where in the Rfc. The comma is the only legal separating character for email addresses. So I'm happy, but I'm annoyed that I can't find what part of the Rfc. They were referencing. 712 01:02:38.930 --> 01:02:39.450 Benji Fisher: Houston. 713 01:02:39.450 --> 01:02:40.499 Aaron McHale: Like cool and cool. 714 01:02:40.830 --> 01:02:48.470 Benji Fisher: And and that sort of attention to detail and caring about detail is exactly what we need. 715 01:02:48.920 --> 01:02:50.190 Aaron McHale: Yes, exactly. 716 01:02:52.490 --> 01:02:55.449 Benji Fisher: So so thank you, Aaron, for for caring 717 01:02:56.780 --> 01:02:59.520 Aaron McHale: I will. I will care about the little things. 718 01:03:00.614 --> 01:03:04.960 Benji Fisher: Does anyone object to my suggestion to insert the 719 01:03:05.260 --> 01:03:06.719 Benji Fisher: starting a comma here? 720 01:03:08.850 --> 01:03:10.610 Benji Fisher: No one is objecting. 721 01:03:12.670 --> 01:03:17.170 Benji Fisher: I think I'd like to leave the comment on this issue unless someone else would rather. 722 01:03:21.180 --> 01:03:26.850 Benji Fisher: And and again, the the main point is that error messages 723 01:03:27.440 --> 01:03:28.840 Benji Fisher: should 724 01:03:29.790 --> 01:03:31.679 Benji Fisher: describe the error state 725 01:03:32.180 --> 01:03:33.380 Benji Fisher: and 726 01:03:34.950 --> 01:03:37.139 Benji Fisher: give information on how to fix it. 727 01:03:37.776 --> 01:03:41.510 Benji Fisher: The current error message skips that first step. 728 01:03:42.510 --> 01:03:45.070 Benji Fisher: And we should just make the 729 01:03:45.500 --> 01:03:48.319 Benji Fisher: error messages consistent rather than 730 01:03:49.050 --> 01:03:54.790 Benji Fisher: treating an empty email address as fundamentally different from a malformed email address. 731 01:03:55.740 --> 01:03:57.070 Benji Fisher: Does that sound about right? 732 01:03:58.230 --> 01:03:59.140 skaught: Yeah, I think so. 733 01:04:02.580 --> 01:04:10.610 Benji Fisher: Okay. We've got a few minutes before the end of the hour I see a thumbs up from Thomas. A any 734 01:04:10.740 --> 01:04:12.780 Benji Fisher: last words before we close the meeting. 735 01:04:16.450 --> 01:04:17.950 Aaron McHale: Email is hard. 736 01:04:22.010 --> 01:04:23.960 skaught: I'm glad we weren't talking about dates today. 737 01:04:28.090 --> 01:04:30.059 Benji Fisher: As speaking of email 738 01:04:30.290 --> 01:04:32.789 Benji Fisher: being hard. Did you see that 739 01:04:32.960 --> 01:04:38.630 Benji Fisher: there was a vulnerability in Smtp discovered maybe a month or 2 ago. 740 01:04:39.420 --> 01:04:40.450 Aaron McHale: It didn't. 741 01:04:41.610 --> 01:04:45.470 Benji Fisher: And it's because Smtp is such an old 742 01:04:45.490 --> 01:04:54.070 Benji Fisher: protocol. It it relies on line, breaks to separate various parts of the message. And what exactly is a line break. Is it a 743 01:04:54.723 --> 01:05:00.046 Benji Fisher: carriage return carriage return line feed. And it turns out that different 744 01:05:00.710 --> 01:05:05.220 Benji Fisher: E email processing programs have different ideas about how to treat it. 745 01:05:05.450 --> 01:05:06.939 Benji Fisher: and if you have 746 01:05:09.790 --> 01:05:11.310 Benji Fisher: if you end the wine 747 01:05:12.540 --> 01:05:21.319 Benji Fisher: with with a carriage, return, and then in the next line with a carriage return line feed. It can sometimes lead to inconsistent results. 748 01:05:21.580 --> 01:05:24.320 Benji Fisher: So yes, email is hard 749 01:05:28.030 --> 01:05:31.760 Benji Fisher: and also line endings are are still plaguing us, despite the fact. 750 01:05:32.200 --> 01:05:35.030 Benji Fisher: Well into the 20 first century. Okay. 751 01:05:35.477 --> 01:05:40.750 Benji Fisher: thanks. All for coming. I think I'll be back next week and hope can all make it. Then. 752 01:05:41.660 --> 01:05:42.550 Aaron McHale: Thanks. 753 01:05:42.860 --> 01:05:43.610 Aaron McHale: Yeah. Alright. Thanks. 754 01:05:43.610 --> 01:05:45.049 Ralf Koller: Thank you. Have a nice weekend. 755 01:05:45.050 --> 01:05:45.870 skaught: Have a good weekend. 756 01:05:46.700 --> 01:05:47.839 Thomas Howell: Thank you. Bye, bye.